package com.example.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 优惠券订单表
 *
 * @TableName tb_voucher_order
 */
@TableName(value = "tb_voucher_order")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Data
public class VoucherOrder implements Serializable {
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     * 1、type = IdType.ASSIGN_ID表示使用雪花算法生成ID
     * 2、IdType.AUTO（自增）
     * 3、IdType.INPUT（手动输入）
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 下单的用户id
     */
    @TableField(value = "user_id")
    private Long userId;
    /**
     * 购买的代金券id
     */
    @TableField(value = "voucher_id")
    private Long voucherId;
    /**
     * 支付方式 1：余额支付；2：支付宝；3：微信
     */
    @TableField(value = "pay_type")
    private Integer payType;
    /**
     * 订单状态，1：未支付；2：已支付；3：已核销；4：已取消；5：退款中；6：已退款
     */
    @TableField(value = "status")
    private Integer status;
    /**
     * 下单时间
     */
    @TableField(value = "create_time")
    private Date createTime;
    /**
     * 支付时间
     */
    @TableField(value = "pay_time")
    private Date payTime;
    /**
     * 核销时间
     */
    @TableField(value = "use_time")
    private Date useTime;
    /**
     * 退款时间
     */
    @TableField(value = "refund_time")
    private Date refundTime;
    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;
}